package model

import (
	"time"
	"user_srv/basic/config"
)

type XqInterestTags struct {
	Id        int64     `gorm:"column:id;type:bigint;primaryKey;not null;" json:"id"`
	Name      string    `gorm:"column:name;type:varchar(50);comment:标签名称;not null;" json:"name"`                 // 标签名称
	Category  string    `gorm:"column:category;type:varchar(50);comment:分类：如运动、音乐、游戏;not null;" json:"category"` // 分类：如运动、音乐、游戏
	SortOrder int32     `gorm:"column:sort_order;type:int;comment:排序字段;default:0;" json:"sort_order"`            // 排序字段
	IsActive  int8      `gorm:"column:is_active;type:tinyint(1);comment:是否启用;default:1;" json:"is_active"`       // 是否启用
	CreatedAt time.Time `gorm:"column:created_at;type:timestamp;default:CURRENT_TIMESTAMP;" json:"created_at"`
}

func (x *XqInterestTags) TableName() string {
	// 表名
	return "xq_interest_tags"
}
func (x *XqInterestTags) Create() error {
	// 创建
	return config.DB.Create(&x).Error
}
func (x *XqInterestTags) Delete(where XqInterestTags) error {
	// 删除
	return config.DB.Where(where).Delete(&x).Error
}
func (x *XqInterestTags) Update(where XqInterestTags) error {
	// 更新
	return config.DB.Where(where).Updates(&x).Error
}
func (x *XqInterestTags) List() ([]XqInterestTags, error) {
	// 查询所有启用的标签，按分类和排序字段排序
	var tags []XqInterestTags
	err := config.DB.Where("is_active = ?", 1).Order("category, sort_order").Find(&tags).Error
	return tags, err
}
